package com.bestcem.xm.om.dao;

import com.bestcem.xm.om.entity.OmRole;

import java.util.List;

/**
 * @author zq.ding <zq.ding@idiaoyan.com>
 * @version v1.0
 * @date 2021/12/24 17:07
 */
public interface OmRoleDao {

    /**
     * 查找OmRole列表
     *
     * @param page 当前页
     * @param size 页面大小
     * @return OmRole列表
     */
    List<OmRole> listRole(Integer page, Integer size);

    /**
     * 根据OmRole更新对应的OmRole
     *
     * @param omRole
     * @return 修改后的OmRole
     */
    OmRole saveRole(OmRole omRole);

    /**
     * 根据id查找对应的OmRole
     *
     * @param id 唯一id
     * @return 实体类
     */
    OmRole findById(String id);

    /**
     * 根据id列表查找对应的OmRole
     *
     * @param ids id列表
     * @return 实体类
     */
    List<OmRole> findByIds(List<String> ids);

    /**
     * 根据id删除对应的OmRole
     *
     * @param id 唯一id
     * @return 实体类
     */
    void deleteById(String id);

    /**
     * 根据id查找对应的OmRole
     *
     * @param title 唯一id
     * @return 实体类
     */
    OmRole findByTitle(String title);

    /**
     * 根据title模糊查询所有角色
     *
     * @param titlePattern title pattern
     * @return 角色列表
     */
    List<OmRole> listByTitle(String titlePattern);

    /**
     * 统计角色总数
     *
     * @return int
     * @author zhangfeng <feng.zhang@idiaoyan.com>
     * @date 2021/12/30 14:52
     */
    int count();

    /**
     * 查询超管角色id
     *
     * @return com.bestcem.xm.om.entity.mongo.OmRole
     * @author zhangfeng <feng.zhang@idiaoyan.com>
     * @date 2021/12/30 14:51
     */
    OmRole findSuperRoleId();

    /**
     * 得到销售leader
     *
     * @param
     * @return
     * @auther xuan.yang@idiaoyan.com
     * @date 2021/12/29 16:53
     */
    List<OmRole> getSaleLeader();

    /**
     * 根据查询条件获取列表
     *
     * @param omRole
     * @return
     * @auther xuan.yang@idiaoyan.com
     * @date 2021/12/30 19:45
     */
    List<OmRole> findByCondition(OmRole omRole);

    /**
     * 根据id查找列表
     *
     * @param roleIds
     * @return
     * @auther xuan.yang@idiaoyan.com
     * @date 2022/1/5 17:56
     */
    List<OmRole> listByIds(List<String> roleIds);

    /**
     * 根据id查找列表
     *
     * @return
     * @auther xuan.yang@idiaoyan.com
     * @date 2022/1/5 17:56
     */
    List<OmRole> listAll();
}
